﻿namespace Okazuki.MVVM.PrismSupport.ViewModels
{
    using System;

    /// <summary>
    /// バリデーションエラー情報
    /// </summary>
    public class ValidationErrorViewModel
    {
        private string propertyName;

        private string errorMessage;

        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="propertyName">エラーのあったプロパティ名</param>
        /// <param name="errorMessage">エラーメッセージ</param>
        /// <exception cref="System.ArgumentNullException">引数がnullの場合発生します</exception>
        public ValidationErrorViewModel(string propertyName, string errorMessage)
        {
            if (string.IsNullOrWhiteSpace(propertyName))
            {
                throw new ArgumentNullException("propertyName");
            }

            if (string.IsNullOrWhiteSpace(errorMessage))
            {
                throw new ArgumentNullException("errorMessage");
            }

            this.propertyName = propertyName;
            this.errorMessage = errorMessage;
        }

        /// <summary>
        /// エラーのあったプロパティ名
        /// </summary>
        public string PropertyName
        {
            get
            {
                return this.propertyName;
            }
        }

        /// <summary>
        /// エラーメッセージ
        /// </summary>
        public string ErrorMessage
        {
            get
            {
                return this.errorMessage;
            }
        }

        /// <summary>
        /// エラーメッセージを返す。
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return this.ErrorMessage;
        }
    }
}
